Prometheus 是什麼,我們先看看官網怎麼說:
監控系統和時序資料庫。
現在多數使用場景是分散式系統,尤其是 Kubernetes。然而說到監控系統,大家可能都會想到 Grafana,而不是 Prometheus。究竟他們之間有什麼關係呢?
一般來說常見的設計類似這樣:
當你從瀏覽器打開你的 Grafana 的監控面版。Grafana 會去看你的面版有哪些視窗、每個視窗分別要顯示什麼東西、資料來源是什麼。如果其中一個視窗設定的資料來源是 Prometheus,內容是一行 PromQL,那 Grafana Server 就會把這行 PromQL 拿去查 Prometheus。拿回一堆數據後,就會把數據畫在你的瀏覽器上。
所以說 Grafana 是一個視覺化工具,而 Prometheus 是一個資料庫。
*圖片來源:https://www.robustperception.io/switching-between-prometheus-servers-in-grafana-using-data-source-variables/
那 Prometheus 不負責畫監控面版的話,又憑什麼自稱是監控系統呢?其實它做了其他更重要的事。
這些功能,包含資料時序資料庫檔案讀寫,都在同一個 Prometheus Server 的執行檔裡面。
可以見得 Prometheus 打從一開始就是要成為一個監控系統,時序資料庫只是監控系統的一大部份。
圖片來源:https://sysdig.com/blog/kubernetes-monitoring-prometheus/
又若 Prometheus 不用於監控,單純做為時序資料庫功能又有什麼用呢?
我從來沒有聽說過有什麼用。或許它可以用來做一些和時序有關的分析,比方說用來研究各種指標和股價的關係。但實務上它除了部署容易之外好像相對其他時序資料庫沒有什麼優勢。
下篇會回答這些問題。
只用在 Kubernetes 上的話,現在不是有 OpenTelemetry 和 OpenMetrics 這些更大的框架嗎?為什麼大家還是都用 Prometheus?
敲碗期待
期待這題大大怎麼說明的